#ifndef _TESTFLOWMINING_H_
#define _TESTFLOWMINING_H_

#include <map>
#include <string>
#include "BaseMining.h"
#include "Basetype.h"


class Column
{
	public:
		char column_name[40];
		BaseType *type;
};


class TestFlow:public BaseMining {
public:
	TestFlow();
	virtual ~TestFlow();
	virtual int verifyName(char *cname);
	virtual int getType(char *name);
	virtual char* verify(struct object_chain *node, bool proj, char *funcref);
	virtual int setProjection(char *name, char *funcref);
	virtual void setProjectionsAll();
	virtual void displayProjection();
	virtual bool setTime(N64 startTime, N64 endTime) { mStartTime = startTime; mEndTime = endTime; return 1; }
	virtual void *setFilter1(char *name, MINEOPERATOR op, char *value, int total, int counter );
	virtual void *setFilter2(void *node, MINEOPERATOR op, char *value, int total, int counter);
	virtual void *setFilter3(char *name, MINEOPERATOR op, void *node, int total, int counter);
	virtual void *setFilter4(void *node1, MINEOPERATOR op, void *node2, int total, int counter) ;
	
	
	
	

	//projection
	

	//Contional Verification and returns a pointer to the conditional node (Null Node).
	//????virtual bool *setCond(int optr, int total, int counter);

	
private:
	int no_columns;
	Column columns[15];
	multimap<string, string> projection;
};

#endif

